package com.schooleducation.dao;

import java.util.List;

/**
 * 课程表数据操作
 * 
 * @author weijing
 *
 * @param <T>
 *            泛型，指定实体类 type
 * @param <PK>
 *            泛型，指定实体类主键的数据类型，如 Integer,Long
 */
public interface LessonDao<T, PK> extends GenericDao<T, PK> {

	/**
	 * 按教师查询课程列表
	 * 
	 * @param entity
	 *            实例
	 * @param start
	 *            开始
	 * @param limit
	 *            数据条数
	 * @return 结果集
	 */
	public List<T> getLessonListByTeacher(T entity, int start, int limit);

	/**
	 * 根据课程种类获取课程列表
	 * 
	 * @param entity
	 *            实例
	 * @param start
	 *            开始
	 * @param limit
	 *            数据条数
	 * @return 结果集
	 */
	public List<T> getLessonListByType(T entity, int start, int limit);
	
	/**
	 * 按订阅数排序获取课程
	 * @param start
	 * 		开始
	 * @param limit
	 * 		数据提条数
	 * @return 结果集
	 */
	public List<T> getLessonListByCount(int start, int limit);
	
	/**
	 * 获取最新课程列表
	 * @param start
	 * 		开始
	 * @param limit
	 * 		数据条数
	 * @return	结果集
	 */
	public List<T> getLessonListDescId(int start, int limit);
	
	public T getLessonById(T entity);
}
